Laptops and other mobile devices have created a desire for applications to operate seamlessly as the device moves from one network to another. E.g., a user who started her laptop on one network and started an email application, and later moved to another network should be able to continue her email session without any special operations. With the current simple Internet Protocol (IP) that is available on most operating systems a network interface is assigned a different IP address in each net network. This change of IP address will break existing application sessions. IETF has defined the Mobile IP (RFC3344) protocol to allow devices to keep their home IP address, even when the device changes its network association.
Mobile IP has been implemented only on devices with one network interface. Newer end user devices are equipped with multiple kind of wireless (e.g., 3G and 802.11) and wired (e.g., Ethernet) network interfaces. Since the availability of networks corresponding to these interfaces is variable, there is a desire for software that automatically manages these interfaces and provides seamless mobility to an application.
In these devices where there are multiple physical interfaces, there are two steps of mobility management. In step one, an interface is selected based on the physical characteristics of the network interface, and in step two, IP level (layer 3) associations are made over that selected physical interface. These steps are continuously executed, and the challenge to implementing the mobility client is to provide an illusion to the application that nothing has changed in the network. All applications, including VPNs, should continue under changing network conditions.
Several implementations of mobile IP manipulate routing tables to effect mobility. However, manipulating routing tables can cause disruptions to higher layer protocols and applications. In fact, such solutions will not work in conjunction with other applications such as IPSec clients that manipulate routing tables themselves.